home *** CD-ROM | disk | FTP | other *** search
/ Aminet 7 / Aminet 7 - August 1995.iso / Aminet / comm / mebbs / whodbv06.lha / whdb.rexx < prev    next >
OS/2 REXX Batch file  |  1994-11-20  |  9KB  |  2 lines

  1. /* Optimized with RexxOpt 1.6 */
  2. signal on ERROR;parse arg LineNumber;DoorName="whodb";if(~show('l',"mebbsarexx.library"))then;do;say "Opening mebbsarexx.library";if(~addlib("mebbsarexx.library",0,-30,0))then;do;say "Could not open library";exit 10;end;end;call GetVar DoorName,LineNumber,1;username=result;ansireset="";yellow="";cyan="";violet="";green="";blue="";bluey="";red="";p=0;J=0;mainpath='T:';firstname=subword(username,1,1);secondname=subword(username,2,1);username=firstname||"_"||secondname;CLS='H';whodbintro="doors:whodb/whodbintro.txt";marker=0;hightider="doors:whodb/hightide";newpath="doors:whodb/whodata";filename2='doors:whodb/statements.cfg';filename3='doors:whodb/questions.cfg';if exists(newpath)=0 then call open data,(newpath),'W';call close(data);if exists(hightider)=0 then marker=0;if exists(hightider)=1 then;do;call Open data,(hightider),'R';hightide=readln(data);marker=hightide;call close(data);end;MENU:;do forever;call ReadFile DoorName,LineNumber,"doors:whodb/whodbintro.txt";call HotKey DoorName,LineNumber,"";mainmenu=upper(result);if mainmenu='W' then call WRITEDATA;if mainmenu='R' then call DATABASE;if mainmenu='Q' then call endz;call HotKey DoorName,LineNumber,"Invalid Response - Hit any key for another try";end;WRITEDATA:;P=1;z=0;CALL open blah,(newpath),'R';do until EOF(blah);treat.z=readln(blah);z=z+1;end;call close(blah);p=z;z=0;do until z>=p;if username=treat.z then;do;call message DoorName,LineNumber,CLS"",1;call HotKey DoorName,LineNumber,"Data already been entered. Hit Key";call menu;end;z=z+25;end;call ReadFile DoorName,LineNumber,"doors:whodb/WRITE-DATA-HEADER.cfg";call localmessage doorname,linenumber,"Configurable file - Doors:whodb/write-data-header.cfg",1;call HotKey DoorName,LineNumber,"Press any key to Commence.";m=1;call Open questZ,(filename3),'R';do until m=25;question=readln(questZ);call readfile doorname,linenumber,"doors:whodb/box.txt";call message DoorName,LineNumber,green"H"question,1;call prompt doorname,linenumber,"H",70;answer.m=result;if answer.m="NULL" then answer.m="No Data disclosed";m=m+1;end;call close(questZ);call Message DoorName,LineNumber,CLS||yellow||"Thankyou for participating",1;call HotKey DoorName,LineNumber,">Hit any key to display the entries.";call Message DoorName,LineNumber,"",1;m=1;do until m=25;call Message DoorName,LineNumber,"Q"m". "answer.m,1;m=m+1;end;call Message DoorName,LineNumber,"",1;call HotKey DoorName,LineNumber,"Would you like to save those Entries (Y/n)?";choice=upper(result);if choice="N" then;do;call Message DoorName,LineNumber,"",1;call hotkey doorname,linenumber,"Answers Erased - [R]estart   [Q]uit.";choice=upper(result);if choice="Q" then call menu;call writedata;end;m=0;call Open questZZ,(newpath),'A';call writeln questZZ,username;m=1;do until m=25;call writeln questZZ,answer.m;m=m+1;end;call close(questZZ);if exists(hightider)=1 then;do;address command "delete "hightider;marker=marker+1;end;call Open data3,(hightider),'W';call writeln data3,marker;call close(data3);call readfile doorname,linenumber,"doors:whodb/saved.cfg";call localmessage doorname,linenumber,"Configurable file - Doors:whodb/saved.cfg",1;call hotkey doorname,linenumber,"";call MENU;DATABASE:;n=0;j=1;m=0;count=0;filename='doors:whodb/whodata';call Message DoorName,LineNumber,'',1;call Message DoorName,LineNumber,'Please hold whilst I load data...............',1;if exists(hightider)=1 then;do;call Open data,(hightider),'R';hightide=readln(data);marker=hightide;hightide=hightide+1;call close(data);end;if exists(hightider)=0 then;do;call message doorname,linenumber,CLS"20HTHE VERY FIRST USER-WELL DONE.",1;call message doorname,linenumber,"20HNO DATA SO PLEASE USE W ON NEXT MENU.",1;call hotkey doorname,linenumber,"Press that key !";call menu;end;call Open quests,(filename2),'R';do until eof(quests);eline.m=readln(quests);m=m+1;end;call close(quests);if exists(filename)=0 then;do;call message doorname,linenumber,CLS"20HTHE VERY FIRST USER-WELL DONE.",1;call message doorname,linenumber,"20HNO DATA SO PLEASE USE W ON NEXT MENU.",1;call hotkey doorname,linenumber,"Press that key !";call menu;end;call Open whodata,(filename),'R';do until eof(whodata);dline.n=readln(whodata);n=n+1;end;call close(whodata);m=0;n=0;count=0;j=1;LOOPY:;call Message DoorName,LineNumber,CLS bluey"                             RECORD NUMBER - ",0;call Message DoorName,LineNumber,red||J"                              "ansireset,1;do forever;if n>=hightide*25|n<0 then;do;call Message DoorName,LineNumber,"",1;call HotKey DoorName,LineNumber," Limitation of Database. Now Press Key";n=0;m=0;j=1;count=0;call loopy;end;call Message DoorName,LineNumber,"",1;call Message DoorName,LineNumber,yellow||eline.m,1;m=m+1;call Message DoorName,LineNumber,green||count||" "||cyan||dline.n,1;n=n+1;count=count+1;if count>=25 then call nextrec;if count=5|count=10|count=15|count=20|count=25 then call doptions;end;call endz;doptions:;call Message DoorName,LineNumber,"",1;call Message DoorName,LineNumber,RED||"["||YELLOW||"Q"||RED||"]"||GREEN||" Quit "||RED||"["||YELLOW||"<"||RED||"]"||GREEN||" Last ",0;call Message DoorName,LineNumber,RED||"["||YELLOW||">"||RED||"]"||GREEN||" Next "||RED||"["||YELLOW||"M"||RED||"]"||GREEN||" More ",0;call Message DoorName,LineNumber,RED||"["||YELLOW||"J"||RED||"]"||GREEN||" Jump "RED||"["||YELLOW||"L"||RED||"]"||GREEN||" List Field's",1;call HotKey DoorName,LineNumber,"Choose:>";zzz=upper(result);if zzz='Q' then call menu;if zzz='>' then call NEXTREC;if zzz='<' then call PREVREC;if zzz='M' then call loopy;if zzz='J' then call GOTOREC;if zzz='L' then call LISTFIELD;else call Message DoorName,LineNumber,"invalid entry",1;call doptions;LISTFIELD:;n=0;vax=1;call Message DoorName,LineNumber,CLS||cyan||"Only field 0 (name) works at the moment",1;call Message DoorName,LineNumber,"",1;call Message DoorName,LineNumber,"Please ENTER the field NUMBER for List",1;call Message DoorName,LineNumber,"> 0",1;call Message DoorName,LineNumber,"",1;call Message DoorName,LineNumber,green||"Start at which record?",1;call Message DoorName,LineNumber,"Highest is "||hightide-1||" Lowest is 0 - ",1;call Prompt DoorName,LineNumber,">",7;start1=result;if datatype(start1,'n')=0 then call listfield;if start1<0|start1>=hightide then;do;call Message DoorName,LineNumber,'',1;call HotKey DoorName,LineNumber,"Hey,dude [Grin] - Highest is "||hightide-1||" Lowest is 0 - Hit Return Dopey";call Listfield;end;call Message DoorName,LineNumber,"End at which record?",1;call Prompt DoorName,LineNumber,">",8;end1=result;if datatype(end1,'n')=0 then call LISTFIELD;if end1<0|end1>=hightide|start1>end1 then;do;call Message DoorName,LineNumber,'',1;call HotKey DoorName,LineNumber,"Hey,dude [Grin] - Highest is "||hightide-1||" Lowest is 0 - Hit Return Dopey";call Message DoorName,LineNumber,"End at which record? - Last chance Dopey",1;call Prompt DoorName,LineNumber,">",8;end1=result;call Listfield;end;call Message DoorName,LineNumber,CLS,1;n=start1*25;p=end1*25+25;do until n=p;vax=n/25;call Message DoorName,LineNumber,green||vax||" "||yellow||dline.n,1;n=n+25;end;call Message DoorName,LineNumber,"Enter NUMBER for record display",1;call Prompt DoorName,LineNumber,">",8;number=upper(result);if datatype(number,'n')=0 then call listfield;count=0;N=number*25;m=0;j=n/25;call loopy;GOTOREC:;call Message DoorName,LineNumber,' ',1;call Message DoorName,LineNumber,'',1;call Message DoorName,LineNumber,'',1;call Message DoorName,LineNumber,'',1;call Prompt DoorName,LineNumber,"Input record number to jump to - Highest is "||hightide-1||" > ",10;jump=result;if datatype(jump,'n')=0 then call gotorec;if jump<0|jump>hightide then;do;call Message DoorName,LineNumber,'',1;call HotKey DoorName,LineNumber,"Read the screen dopey [Grin] - Highest is "||hightide-1||" Lowest is 0 - Hit Return Dopey";call Gotorec;end;n=jump*25;count=0;j=n/25;m=0;call loopy;return;NEXTREC:;if count>=25 then call hotkey doorname,linenumber,"Thump any key Sir";call Message DoorName,LineNumber,"Searching for Next record",1;j=j+1;if count=5 then n=n+20;if count=10 then n=n+15;if count=15 then n=n+10;if count=20 then n=n+5;count=0;m=0;call loopy;PREVREC:;if count<=0 then call HotKey DoorName,LineNumber,"Thump return Sir";call Message DoorName,LineNumber,"Searching for Last record",1;j=j-1;if count=5 then n=n-30;if count=10 then n=n-35;if count=15 then n=n-40;if count=20 then n=n-45;if count=25 then n=n-50;count=0;m=0;call loopy;IOERR:;call Exit_Door DoorName,LineNumber;exit 10;ERROR:;call Exit_Door DoorName,LineNumber;exit 10;endz:;call message doorname,linenumber,"",1;call message doorname,linenumber,"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ",0;call message doorname,linenumber,"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ",1;call message doorname,linenumber,"MEBBSNET DELUXE WHO IS WHO V0.6      ",0;call message doorname,linenumber,"         Programmed by Jon Witty 94 (c)",1;call message doorname,linenumber,"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ",0;call message doorname,linenumber,"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ",1;call message doorname,linenumber,"",1;call message doorname,linenumber,"Metnet BBS +44-482-473871 - Hull - England",1;call HotKey DoorName,LineNumber,"Press a key";end_it:;call Exit_Door DoorName,LineNumber;exit 0